<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <title>字符编码</title>
<link media="all" rel="stylesheet" type="text/css" href="styles/03e73060321a0a848018724a6c83de7f-theme-base.css" />
<link media="all" rel="stylesheet" type="text/css" href="styles/03e73060321a0a848018724a6c83de7f-theme-medium.css" />

 </head>
 <body class="docs"><div class="navbar navbar-fixed-top">
  <div class="navbar-inner clearfix">
    <ul class="nav" style="width: 100%">
      <li style="float: left;"><a href="xml.error-codes.html">« 错误代码</a></li>
      <li style="float: right;"><a href="xml.examples.html">范例 »</a></li>
    </ul>
  </div>
</div>
<div id="breadcrumbs" class="clearfix">
  <ul class="breadcrumbs-container">
    <li><a href="index.html">PHP Manual</a></li>
    <li><a href="book.xml.html">XML 解析器</a></li>
    <li>字符编码</li>
  </ul>
</div>
<div id="layout">
  <div id="layout-content"><div id="xml.encoding" class="article">
 <h1>字符编码</h1>

 <p class="para">
  PHP 的 XML 扩展通过几种不同的<span class="glossterm">字符编码</span>支持<a href="http://www.unicode.org/" class="link external">&raquo;&nbsp;Unicode</a> 字符集。
  有两类字符编码，
  <span class="glossterm">原始编码</span> 和 <span class="glossterm">目标编码</span>.
  在PHP的内部展现中，文档始终是使用<code class="literal">UTF-8</code>编码。
 </p>
 <p class="para">
  当 XML 被
  <a href="function.xml-parse.html" class="link">解析</a>
  后，原始编码就完成了。
  在<a href="function.xml-parser-create.html" class="link">创建 XML 解析器</a>时,
  可以指定原始编码(在XML 解析器此后的生命周期里，不能修改此编码)。
  被支持的原始编码有
  <code class="literal">ISO-8859-1</code>,
  <code class="literal">US-ASCII</code> 和 <code class="literal">UTF-8</code>.  
  前两种是单字节编码, 即每一个字符表现为一个字节。
  <code class="literal">UTF-8</code>
  可将字符编码为一串不定数量(最高21)的位(bit), 排列成1到4个字节。
  PHP 中使用的默认原始编码是<code class="literal">ISO-8859-1</code>.
 </p>
 <p class="para">
  当 PHP 将数据传给 XML 处理函数时，目标编码就完成了。
  在创建 XML 处理器时，目标编码被设定为与原始编码相同，但可任意修改。
  目标编码会影响字符数据及标签名，与处理指令目标。
 </p>
 <p class="para">
  如 XML 解析器遇到原始编码所能表示的范围之外的字符时，会返回一个错误。
 </p>
 <p class="para">
  如 PHP 遇到在被解析的 XML 文档中不能用所指定的目标编码表示的字符时，
  这个问题字符会被“降级”。通常来说，就是那些字符会被替换成问号(?)。
 </p>
</div>
</div></div></body></html>